/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Logistica.Controlador;

import CharliesCookies.MainController;
import com.dp1.pucp.Modelo.Clases.*;
import com.dp1.pucp.Logistica.DAO.*;
import com.dp1.pucp.Logistica.Vista.*;
import com.dp1.pucp.Seguridad.DAO.LogDAO;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author ubuntu64
 */
public class MantPedidoProduccionControlador {
    private TipoProductoDAO m;
    private MantPedidoProduccionGUI2 mantPedidoProduccionView;
    private ArrayList<Pedidoproduccion> lstPedidoProduccion;
    private ArrayList<String> lstTipo;
    private final static int ESTADO_ACTIVO=1;
    private final static int ESTADO_INACTIVO=0;
        
    public MantPedidoProduccionControlador(TipoProductoDAO dao, MantPedidoProduccionGUI2 v){
        m = dao;
        mantPedidoProduccionView = v;
       
        llenarTipoCombo();
        mantPedidoProduccionView.addBuscarListener(new listarPedidoProduccion() );
 
        mantPedidoProduccionView.addNuevoListener(new crearPedidoProduccionListener(this));
        mantPedidoProduccionView.addLimpiarListener(new limpiarListener());
        mantPedidoProduccionView.addELiminarListener(new eliminarListener());
        
    }
    
    private void llenarTipoCombo(){
        lstTipo = m.listarTurno();
        mantPedidoProduccionView.llenaComboTipo(lstTipo);
    }      

    public void listarResultados(int turno){
        lstPedidoProduccion = m.listarPedidoProduccion(turno);               
        mantPedidoProduccionView.llenaGrilla(lstPedidoProduccion);        
    }
    
    class listarPedidoProduccion implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e) {

                int turno=mantPedidoProduccionView.getEstado();
                
                listarResultados(turno);
        }
    }
    
    class verRecetaListener implements ActionListener {
        
        private MantPedidoProduccionControlador buc;
        public verRecetaListener(MantPedidoProduccionControlador buscarusr){
            buc=buscarusr;
        }
                
        @Override
        public void actionPerformed(ActionEvent e) {
            int sel=mantPedidoProduccionView.getFilaSel();
            if(sel!=-1){
                Pedidoproduccion u = lstPedidoProduccion.get(sel);
            
                DetalleRecetaPFGUI p = new DetalleRecetaPFGUI(mantPedidoProduccionView.getPadre(), true);
            
                //DetalleRecetaControlador c = new DetalleRecetaControlador (m,p,buc,u);
                p.setVisible(true);
            }
        }
    }
    
    

    
    
    class crearPedidoProduccionListener implements ActionListener {
        
        private MantPedidoProduccionControlador buc;
        public crearPedidoProduccionListener(MantPedidoProduccionControlador buscarusr){
            buc=buscarusr;
        }
                
        @Override
        public void actionPerformed(ActionEvent e) {
            PedidoProduccionGUI p = new PedidoProduccionGUI(mantPedidoProduccionView.getPadre(), true);
            PedidoProduccionControlador c = new PedidoProduccionControlador (m,p,buc);
            LogDAO.insertarLog(MainController.usuario, "Ingresar Agregar Pedido de Produccion");
            p.setVisible(true);
        }
    
    }    
    
    class editarTipoProductoListener implements ActionListener {
        
        private MantPedidoProduccionControlador buc;
        public editarTipoProductoListener(MantPedidoProduccionControlador buscarusr){
            buc=buscarusr;
        }
        @Override
        public void actionPerformed(ActionEvent e) {            
            int sel=mantPedidoProduccionView.getFilaSel();
            if (sel!=-1){
                TipoProductoGUI p = new TipoProductoGUI(mantPedidoProduccionView.getPadre(), true);
                Pedidoproduccion u = lstPedidoProduccion.get(sel);                
                //TipoProductoControlador c = new TipoProductoControlador (m,p,buc,u);
                p.setVisible(true);                
            }
        }
    
    } 
        
    class limpiarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            mantPedidoProduccionView.LimpiarDatos();
        }        
    }    
    
    class eliminarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            int sel=mantPedidoProduccionView.getFilaSel();
            if (sel!=-1){
                if (mantPedidoProduccionView.solicitarConfirmacion("¿Desea inactivar este pedido de produccion?")==0){
                      Pedidoproduccion u = lstPedidoProduccion.get(sel); 
                      u.setEstado(ESTADO_INACTIVO);
                      
                      m.guardarPedidoProduccion(u);
                      LogDAO.insertarLog(MainController.usuario, "Eliminar Pedido de Produccion");
//                    mantTipoProductoView.mostrarAviso("Se inactivó el usuario con éxito");
                      mantPedidoProduccionView.mostrarAviso("Se elimino el pedido de produccion con éxito");
                      int turno=0;
                      listarResultados(turno);
//                }
            }
            else{
                mantPedidoProduccionView.mostrarError("Debe seleccionar un pedido de produccion");
            }
        }        
    }       
    

}}
